using System;

namespace ExcelTemplateEngine.OpenXML
{
    /// <summary>
    /// Excel单元格接口
    /// </summary>
    public interface ICell
    {
        /// <summary>
        /// 单元格地址（如"A1"）
        /// </summary>
        string Address { get; }
        
        /// <summary>
        /// 行号（1-based）
        /// </summary>
        int Row { get; }
        
        /// <summary>
        /// 列号（1-based）
        /// </summary>
        int Column { get; }
        
        /// <summary>
        /// 单元格值
        /// </summary>
        object Value { get; set; }
        
        /// <summary>
        /// 公式
        /// </summary>
        string Formula { get; set; }
        
        /// <summary>
        /// 样式ID
        /// </summary>
        uint? StyleIndex { get; set; }
        
        /// <summary>
        /// 数据类型
        /// </summary>
        CellDataType DataType { get; set; }
        
        /// <summary>
        /// 获取格式化后的文本
        /// </summary>
        /// <returns>格式化的文本</returns>
        string GetFormattedValue();
    }
    
    /// <summary>
    /// 单元格数据类型
    /// </summary>
    public enum CellDataType
    {
        /// <summary>
        /// 数字
        /// </summary>
        Number,
        
        /// <summary>
        /// 字符串
        /// </summary>
        String,
        
        /// <summary>
        /// 布尔值
        /// </summary>
        Boolean,
        
        /// <summary>
        /// 日期
        /// </summary>
        Date,
        
        /// <summary>
        /// 错误
        /// </summary>
        Error,
        
        /// <summary>
        /// 公式
        /// </summary>
        Formula,
        
        /// <summary>
        /// 共享字符串
        /// </summary>
        SharedString
    }
}